package com.wlyuan.index.api.dto.combine;

import com.wlyuan.tools.PageSort;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author yuanjie
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CombineIndexFilterDTO extends PageSort implements Serializable {
    @ApiModelProperty("合单ID")
    private List<Long> combineIds;

    @ApiModelProperty("合同编号")
    private String contractNo;

    @ApiModelProperty("合同编号")
    private List<String> contractNos;

    @ApiModelProperty("发货方ID")
    private Long customerId;

    @ApiModelProperty("发货方名称")
    private String customerName;

    @ApiModelProperty("收货方ID")
    private String consigneeId;

    @ApiModelProperty("收货方名称")
    private String consigneeName;

    @ApiModelProperty("承运方ID")
    private Long carrierId;

    @ApiModelProperty("承运方名称")
    private String carrierName;

    @ApiModelProperty("司机名称")
    private String driverName;

    @ApiModelProperty("总数量")
    private Integer totalQuantityBegin;
    private Integer totalQuantityEnd;

    @ApiModelProperty("总重量")
    private BigDecimal calculateWeightBegin;
    private BigDecimal calculateWeightEnd;

    @ApiModelProperty("总体积")
    private BigDecimal calculateVolumeBegin;
    private BigDecimal calculateVolumeEnd;

    @ApiModelProperty("总费用")
    private BigDecimal totalFeeBegin;
    private BigDecimal totalFeeEnd;

    @ApiModelProperty("发货时间")
    private LocalDateTime fromTimeBegin;
    private LocalDateTime fromTimeEnd;

    @ApiModelProperty("到货时间")
    private LocalDateTime toTimeBegin;
    private LocalDateTime toTimeEnd;

    @ApiModelProperty("创建时间")
    private LocalDateTime createAtBegin;
    private LocalDateTime createAtEnd;

    @ApiModelProperty("可报价")
    private Boolean callQuote;

    @ApiModelProperty("是否有费用")
    private Boolean generatedFees;

    @ApiModelProperty("合单状态")
    private List<Integer> statuses;

    @ApiModelProperty("关单状态")
    private List<Integer> closeStatuses;

    @ApiModelProperty("报价状态")
    private List<Integer> quotationStatuses;

    @ApiModelProperty("关键字")
    private String keyword;

    @ApiModelProperty("子单合同号")
    private String subContractNo;

    @ApiModelProperty("子单合同号")
    private List<String> subContractNos;

    @ApiModelProperty("子单发货方名称")
    private String subCustomerName;

    @ApiModelProperty("1=发货方 2=承运方 3=发货方+承运方")
    private Integer character;
    private List<Integer> characters;

    @ApiModelProperty("租户ID")
    private Long tenantId;
}
